Thuật toán tìm đường là gì? Các bài báo nghiên cứu khoa học

Thuật toán tìm đường là phương pháp tính toán nhằm xác định lộ trình tối ưu hoặc hợp lệ giữa hai điểm trong không gian rời rạc hoặc liên tục. Chúng được mô hình hóa bằng đồ thị và áp dụng nhiều chiến lược như BFS, Dijkstra, A* hay RRT để tìm ra đường đi hiệu quả nhất tùy theo đặc điểm bài toán.

Định nghĩa thuật toán tìm đường

Thuật toán tìm đường (pathfinding algorithm) là tập hợp các phương pháp tính toán nhằm xác định một lộ trình hợp lệ hoặc tối ưu từ điểm xuất phát đến điểm đích trong một không gian xác định. Không gian này có thể là mạng lưới các nút trong đồ thị, bản đồ hai chiều trong trò chơi, môi trường ba chiều trong robot học, hoặc thậm chí là các trạng thái trong không gian logic trừu tượng.

Bản chất của thuật toán tìm đường là giải bài toán tối ưu đường đi dưới các ràng buộc nhất định như: khoảng cách ngắn nhất, chi phí thấp nhất, hoặc số bước ít nhất. Các thuật toán khác nhau sẽ áp dụng các chiến lược khác nhau để tìm kiếm đường đi, ví dụ như mở rộng theo chiều rộng (BFS), theo chiều sâu (DFS), theo chi phí tích lũy (Dijkstra), hoặc theo một hàm đánh giá ước lượng (A*).

Thuật toán tìm đường là thành phần cốt lõi trong nhiều hệ thống: định tuyến trong mạng máy tính, chỉ đường GPS, lập kế hoạch chuyển động cho robot, điều hướng nhân vật trong game, và cả trong lĩnh vực logistic, hàng không, trí tuệ nhân tạo. Mỗi lĩnh vực có đặc thù riêng nên yêu cầu lựa chọn thuật toán phù hợp với mục tiêu tối ưu, thời gian xử lý, và độ phức tạp không gian.

Mô hình hóa không gian tìm đường bằng đồ thị

Trước khi áp dụng thuật toán tìm đường, không gian phải được mô hình hóa thành cấu trúc toán học phù hợp, phổ biến nhất là đồ thị. Một đồ thị G=(V,E)G = (V, E) gồm:

  • VV: tập hợp các đỉnh (nodes), đại diện cho vị trí, trạng thái, hoặc điểm dữ liệu
  • EE: tập hợp các cạnh (edges), đại diện cho kết nối hoặc đường đi giữa các đỉnh

Mỗi cạnh có thể có trọng số hoặc không. Trong trường hợp có trọng số, mỗi cạnh (u,v)(u, v) mang giá trị w(u,v)w(u, v) biểu thị chi phí hoặc độ dài của đoạn đường từ uu đến vv.

Ví dụ mô hình bản đồ thành đồ thị:

Đỉnh Kết nối Trọng số
A B, C 5, 2
B C, D 1, 4
C D 3

Khi đó, bài toán tìm đường trở thành: tìm chuỗi các đỉnh [A,C,D][A, C, D] sao cho tổng trọng số nhỏ nhất. Việc xây dựng đồ thị chính xác là tiền đề quan trọng cho hiệu quả thuật toán.

Thuật toán tìm đường không có trọng số

Trong một số ứng dụng, chẳng hạn như bản đồ ô vuông trong trò chơi 2D hoặc ma trận logic, chi phí giữa các ô liền kề được xem là bằng nhau. Khi đó, đồ thị trở thành đồ thị không trọng số. Bài toán tìm đường lúc này cần tìm số bước ít nhất giữa hai điểm.

Thuật toán phù hợp trong trường hợp này là Breadth-First Search (BFS). BFS hoạt động bằng cách duyệt từng lớp đỉnh từ nguồn, đảm bảo đỉnh được tìm thấy đầu tiên sẽ là đỉnh gần nhất theo số bước. Do đó, BFS luôn tìm được đường đi ngắn nhất trong đồ thị không trọng số.

  • Input: Đồ thị G=(V,E)G = (V, E) không có trọng số
  • Output: Đường đi có số bước ít nhất từ đỉnh ss đến tt
  • Độ phức tạp: O(V+E)O(|V| + |E|)

Một số thuật toán khác như DFS (Depth-First Search) có thể tìm đường đi nhưng không đảm bảo ngắn nhất. DFS thường dùng để kiểm tra tính liên thông hoặc tìm tất cả đường có thể, không tối ưu cho bài toán tìm đường ngắn nhất.

Thuật toán tìm đường có trọng số

Trong các hệ thống thực tế, chi phí di chuyển thường khác nhau giữa các đoạn đường, ví dụ như quãng đường xa hơn, tốc độ chậm hơn, hoặc chi phí nhiên liệu cao hơn. Do đó, thuật toán phải xét đến trọng số cạnh khi xác định đường đi tối ưu.

Thuật toán Dijkstra là giải pháp cổ điển cho bài toán tìm đường ngắn nhất trong đồ thị có trọng số không âm. Thuật toán sử dụng một hàng đợi ưu tiên để chọn đỉnh có chi phí nhỏ nhất chưa được xử lý, sau đó cập nhật chi phí đến các đỉnh láng giềng:

dist[v]=min(dist[v],dist[u]+w(u,v)) \text{dist}[v] = \min(\text{dist}[v], \text{dist}[u] + w(u, v))

Với mỗi lần lặp, thuật toán mở rộng vùng ảnh hưởng từ nguồn ra các đỉnh mới cho đến khi đích được tìm thấy hoặc toàn bộ đồ thị được quét. Độ phức tạp trung bình khi dùng heap là O((V+E)logV)O((|V| + |E|) \log |V|).

Dijkstra hoạt động chính xác khi không có cạnh âm. Nếu tồn tại trọng số âm, thuật toán Bellman-Ford được sử dụng thay thế với khả năng phát hiện chu trình âm nhưng có độ phức tạp cao hơn: O(VE)O(|V| \cdot |E|).

Thuật toán heuristic: A* và các biến thể

A* (A-star) là thuật toán tìm đường có trọng số sử dụng heuristic – một hàm ước lượng chi phí còn lại từ đỉnh hiện tại đến đích – để hướng dẫn việc mở rộng. Đây là sự kết hợp giữa thuật toán Dijkstra (dựa vào chi phí thực tế) và tìm kiếm theo chiến lược thông minh.

Hàm đánh giá của A* là: f(n)=g(n)+h(n)f(n) = g(n) + h(n), trong đó:

  • g(n)g(n): chi phí từ điểm bắt đầu đến nút nn
  • h(n)h(n): ước lượng chi phí từ nn đến đích
Nếu h(n)h(n) là admissible (không vượt quá chi phí thực tế), A* đảm bảo tìm được đường đi ngắn nhất.

A* đặc biệt hiệu quả trong bản đồ hai chiều với h(n)h(n) là khoảng cách Euclid hoặc Manhattan. Ví dụ: h(n)=(xnxt)2+(ynyt)2h(n) = \sqrt{(x_n - x_t)^2 + (y_n - y_t)^2} (khoảng cách Euclid), hoặc h(n)=xnxt+ynyth(n) = |x_n - x_t| + |y_n - y_t| (Manhattan).

Một số biến thể của A* bao gồm:

  • Weighted A*: Nhân hệ số vào heuristic để tăng tốc độ (đánh đổi tính tối ưu)
  • IDA* (Iterative Deepening A*): Dùng cho không gian lớn, giới hạn theo f(n)f(n)
  • D* và D*-Lite: Áp dụng trong môi trường động, robot tự điều chỉnh đường đi khi bản đồ thay đổi

So sánh hiệu suất các thuật toán tìm đường

Lựa chọn thuật toán phù hợp phụ thuộc vào loại đồ thị (có trọng số hay không), độ lớn không gian, yêu cầu về tối ưu và thời gian xử lý. Bảng dưới đây tổng hợp một số đặc điểm so sánh:

Thuật toán Loại đồ thị Tối ưu Heuristic Độ phức tạp
BFS Không trọng số Không O(V+E)O(|V| + |E|)
Dijkstra Trọng số không âm Không O((V+E)logV)O((|V| + |E|)\log |V|)
Bellman-Ford Trọng số âm Không O(VE)O(|V|\cdot|E|)
A* Trọng số + heuristic Có (nếu h(n)h(n) đúng) Phụ thuộc vào không gian và h(n)h(n)

Heuristic càng gần đúng với chi phí thực tế thì A* càng hiệu quả. Nếu h(n)h(n) đánh giá kém, A* có thể mất nhiều tài nguyên như Dijkstra.

Ứng dụng trong thực tiễn

Các thuật toán tìm đường được ứng dụng rộng rãi trong các hệ thống thực tế hiện đại:

  • Hệ thống GPS: Dựa trên bản đồ giao thông, A* hoặc Dijkstra xác định đường đi ngắn hoặc nhanh nhất
  • Robot tự hành: A*, D*, và RRT giúp robot xác định và thích ứng lộ trình khi môi trường thay đổi
  • Game và mô phỏng: NPC trong game sử dụng grid-based A* để tránh vật thể và đến mục tiêu
  • Giao thông thông minh: Tối ưu tuyến đường và phân luồng bằng tìm đường dựa trên dữ liệu thời gian thực

Ví dụ: trong trò chơi chiến thuật như StarCraft, mỗi đơn vị sử dụng A* hoặc JPS (Jump Point Search – biến thể tối ưu A*) để di chuyển mượt và tránh va chạm.

Trong hệ thống xe tự lái, thuật toán tìm đường phải được tích hợp với cảm biến, bản đồ HD, và mô-đun kiểm soát chuyển động, đảm bảo vừa chính xác vừa an toàn.

Thuật toán tìm đường trong không gian liên tục

Trong các bài toán hình học tính toán, robot học và vật lý, không gian tìm kiếm có thể là liên tục và nhiều chiều, không thể biểu diễn hoàn toàn bằng đồ thị rời rạc. Các thuật toán lấy mẫu như RRT và PRM ra đời để giải quyết vấn đề này.

  • RRT (Rapidly-exploring Random Tree): Xây cây nhị phân mở rộng ngẫu nhiên từ điểm xuất phát đến đích
  • PRM (Probabilistic Roadmap): Lấy mẫu các điểm hợp lệ trong không gian, kết nối bằng đường an toàn, sau đó tìm đường trên đồ thị đã xây dựng

Cả hai thuật toán đều hiệu quả với không gian phức tạp, nhiều chướng ngại vật, hoặc có độ tự do cao như tay robot, máy bay, thiết bị bay không người lái. Tuy nhiên, chúng không đảm bảo tối ưu và cần thêm giai đoạn hậu xử lý để làm mượt lộ trình.

RRT* (biến thể của RRT) sử dụng chiến lược tối ưu hóa đường đi dần theo thời gian, hy sinh tốc độ để đổi lấy chất lượng hành trình tốt hơn.

Tài liệu tham khảo

  1. Dijkstra, E. W. (1959). "A Note on Two Problems in Connexion with Graphs". Numerische Mathematik.
  2. Hart, P. E., Nilsson, N. J., & Raphael, B. (1968). "A Formal Basis for the Heuristic Determination of Minimum Cost Paths". IEEE Transactions on Systems Science and Cybernetics.
  3. Russell, S., & Norvig, P. (2021). Artificial Intelligence: A Modern Approach. Pearson.
  4. LaValle, S. M. (2006). Planning Algorithms. Cambridge University Press. http://planning.cs.uiuc.edu/
  5. MIT OpenCourseWare – Introduction to Algorithms. https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/
  6. Stanford CS221: AI Pathfinding Algorithms. https://web.stanford.edu/class/cs221/
  7. AAAI – Path Planning Overview. https://www.aaai.org/AITopics/html/path.html

Các bài báo, nghiên cứu, công bố khoa học về chủ đề thuật toán tìm đường:

Thuật toán Bellman-Ford cải biên tìm đường đi ngắn nhất trên mạng mở rộng
Tạp chí Khoa học và Công nghệ - Đại học Đà Nẵng - - Trang 84-87 - 2015
Đồ thị là công cụ toán học hữu ích ứng dụng trong nhiều lĩnh vực như giao thông, truyền thông, công nghệ thông tin, kinh tế, …. Cho đến nay, trong đồ thị mới chỉ xét đến trọng số của các cạnh, các đỉnh một cách độc lập, trong đó độ dài đường đi chỉ đơn thuần là tổng trọng số các cạnh và các đỉnh trên đường đi đó. Tuy nhiên, trong nhiều bài toán thực tế, trọng số tại một đỉnh không giống nhau với m...... hiện toàn bộ
#đồ thị #đồ thị mở rộng #đường đi ngắn nhất #thuật toán Dijkstra #thuật toán Bellman-Ford
Ứng dụng thuật toán tìm đường đi nhanh nhất tìm luồng cực đại đa phương tiện tuyến tính đồng thời chi phí cực tiểu trên mạng giao thông mở rộng
Tạp chí Khoa học và Công nghệ - Đại học Đà Nẵng - - Trang 85-91 - 2013
Đồ thị và mạng mở rộng là công cụ toán học hữu ích ứng dụng trong nhiều lĩnh vực như giao thông, truyền thông, công nghệ thông tin, kinh tế, …. [7]. Kết quả chính của bài báo là nghiên cứu thuật toán tìm luồng cực đại đa phương tiện tuyến tính đồng thời chi phí cực tiểu trên mạng giao thông mở rộng, sử dụng thuật toán tìm đường đi nhanh nhất trên mạng giao thông mở rộng [6]. Trên sơ sở bài toán đố...... hiện toàn bộ
#đồ thị #mạng #luồng đa phương tiện #tối ưu #xấp xỉ
Thuật Toán Tối Ưu Hóa Dựa Trên Đại Lý Phát Hiện Mùi Dịch bởi AI
Journal of The Institution of Engineers (India): Series B - Tập 97 - Trang 431-436 - 2015
Trong bài báo này, một thuật toán tối ưu hóa mới được lấy cảm hứng từ thiên nhiên đã được áp dụng và hành vi đã được đào tạo của chó trong việc phát hiện dấu mùi được thích ứng thành các tác nhân tính toán để giải quyết vấn đề. Thuật toán này bao gồm việc tạo ra một bề mặt với các dấu mùi và việc lặp lại các tác nhân trong việc giải quyết một lộ trình. Thuật toán này có thể được áp dụng trong các ...... hiện toàn bộ
#Thuật toán tối ưu hóa #phát hiện mùi #tác nhân tính toán #bài toán tìm đường ngắn nhất #vấn đề NP-khó
Thuật Toán Tìm Kiếm Đường Dò Không Đơn Điệu cho Các Vấn Đề Minimax Ràng Buộc Dịch bởi AI
Journal of Optimization Theory and Applications - Tập 115 - Trang 419-446 - 2002
Trong bài báo này, một thuật toán cho các bài toán minimax ràng buộc được trình bày, có tính toàn cục hội tụ và có tốc độ hội tụ là siêu tuyến tính hai bước. Thuật toán áp dụng SQP cho các bài toán minimax ràng buộc bằng cách kết hợp tìm kiếm đường dò không đơn điệu và kỹ thuật hiệu chỉnh bậc hai, điều này đảm bảo độ dài bước đầy đủ khi gần với một nghiệm, vì vậy hiệu ứng Maratos được tránh và sự ...... hiện toàn bộ
#thuật toán; bài toán minimax; tối ưu ràng buộc; SQP; hiệu ứng Maratos
Ứng dụng thuật toán tối ưu trong mô hình tìm đường đi tin cậy cho thành phố thông minh
Journal of Technical Education Science - Tập 20 Số 03 - Trang 100-110 - 2025
Nghiên cứu này triển khai và so sánh hai thuật toán tiềm năng trong quản lý giao thông đô thị là thuật toán tối ưu RAO-3 và thuật toán học tăng cường Q-Learning. Nghiên cứu triển khai trên nền tảng hệ thống tối ưu mật độ giao thông động, một hệ thống thu thập dữ liệu giao thông thời gian thực từ các thiết bị IoT và xử lý thông qua cơ sở hạ tầng điện toán sương mù. Việc triển khai thuật toán RAO-3 ...... hiện toàn bộ
#Optimization Algorithms #Pathfinding #Smart Cities #RAO-3 #Q-Learning
Mô hình cho vấn đề xác định vị trí-đường đi của các trung tâm phân phối trên mạng lưới vận tải đa phương thức với phương pháp giải quyết meta-heuristic Dịch bởi AI
Journal of Industrial Engineering International - Tập 14 - Trang 327-342 - 2017
Ngày nay, các tổ chức phải cạnh tranh với nhiều đối thủ khác nhau ở cấp độ khu vực, quốc gia và quốc tế, do đó họ cần cải thiện khả năng cạnh tranh để tồn tại trước các đối thủ. Thực hiện các hoạt động trên quy mô toàn cầu đòi hỏi một hệ thống phân phối hợp lý có thể tận dụng các phương thức vận chuyển khác nhau. Do đó, bài báo này đề cập đến một vấn đề xác định vị trí-đường đi trên mạng lưới vận ...... hiện toàn bộ
#vận tải đa phương thức #xác định vị trí-đường đi #lập trình tuyến tính nguyên #thuật toán di truyền #hiệu suất mô hình
Nén Đồ Thị Trong Các Thuật Toán Đấu Giá Tìm Đường Ngắn Nhất Dịch bởi AI
Computational Optimization and Applications - Tập 18 - Trang 199-220 - 2001
Trong bài báo này, chúng tôi xem xét vấn đề tìm đường ngắn nhất từ một nút nguồn đến một nút đích cố định (SSP) hoặc đến tất cả các nút (SPT) trên một đồ thị có hướng. Một gia đình các thuật toán được phát triển từ thuật toán đấu giá đã biết được giới thiệu. Tính năng chính của các thuật toán này dựa trên những biến đổi topo thực hiện trên đồ thị nhằm thay thế một đoạn đường con tối ưu bằng một cu...... hiện toàn bộ
#đường ngắn nhất #thuật toán đấu giá #đồ thị có hướng #biến đổi topo #nén đồ thị
Phương pháp ước lượng nhiều đường cong chuông một cách ổn định và chính xác cho chuỗi thời gian liên quan đến chu kỳ Hubbert hay hiện tượng khác Dịch bởi AI
Mathematical Geosciences - Tập 47 - Trang 663-678 - 2014
Các đường cong chuông (bell curve) có ứng dụng trong việc hiểu nhiều quan sát và đo lường trong các lĩnh vực khoa học. Việc liên hệ các đường cong Gaussian với dữ liệu là điều phổ biến vì nó liên quan đến Định lý Giới hạn Trung tâm (Central Limit Theorem) cũng như lỗi ngẫu nhiên. Tương tự, việc ước lượng các đạo hàm logistic cho sản xuất dầu hoặc các nguồn tài nguyên không tái tạo khác là một thực...... hiện toàn bộ
#đường cong chuông #phương pháp ước lượng #chuỗi thời gian #tính ổn định #độ chính xác #chu kỳ Hubbert #tài nguyên không tái tạo #thuật toán MatLab
Thuật toán tìm đường được cải tiến cho các bài toán tối ưu kỹ thuật Dịch bởi AI
Engineering with Computers - Tập 38 Số 2 - Trang 1481-1503 - 2022
Thuật toán tìm đường (PFA) là một bộ tối ưu hóa dựa trên quần thể mới, nó phân chia các tác nhân tìm kiếm của thuật toán thành các nhà lãnh đạo và người theo sau, bắt chước cấp độ lãnh đạo của chuyển động nhóm để tìm khu vực thực phẩm hoặc con mồi tốt nhất. Trong PFA, những người theo sau tiếp tục theo vị trí mới dựa trên vị trí của nhà lãnh đạo và ý thức riêng của họ, khiến cho thuật toán dễ rơi ...... hiện toàn bộ
#thuật toán tìm đường #tối ưu hóa kỹ thuật #mô phỏng #quần thể #lãnh đạo
Sự xuất hiện của các sự kiện bất lợi hô hấp-tim mạch sau phẫu thuật ở trẻ sơ sinh nhỏ tuổi trải qua phẫu thuật đường tiêu hóa: So sánh có tính chất tiên tiến giữa gây mê toàn thân và gây mê tủy sống kết hợp vùng ngoài màng cứng Dịch bởi AI
Pediatric Surgery International - Tập 27 - Trang 1173-1178 - 2011
Nghiên cứu này được thiết kế để so sánh sự xuất hiện của các sự kiện bất lợi hô hấp và tim mạch sau phẫu thuật trong thời gian theo dõi 8 ngày tại khoa chăm sóc đặc biệt dành cho trẻ sơ sinh ở những trẻ nhỏ đã trải qua phẫu thuật đường tiêu hóa theo kế hoạch dưới gây mê toàn thân và gây mê tủy sống kết hợp vùng ngoài màng cứng. Năm mươi trẻ sơ sinh đã trải qua phẫu thuật đường tiêu hóa chính theo ...... hiện toàn bộ
#gây mê #phẫu thuật nhi khoa #sự kiện bất lợi tim mạch hô hấp #gây mê toàn thân #gây mê tủy sống kết hợp ngoài màng cứng
Tổng số: 15   
  • 1
  • 2